﻿using System;
using System.Collections.Generic;
using System.Web;
using System.Data;
using System.Web.Configuration;
using MySql.Data.MySqlClient;

/// <summary>
/// Descripción breve de Conexion
/// </summary>
/// 
public class Conexion
{

    #region Atributos de la clase

    protected string cadenaDeConexion;

    #endregion

	public Conexion()
	{
		//
		// TODO: Agregar aquí la lógica del constructor
		//
	}

    public MySqlConnection dameConexion()
    {
        string tipoconexion = WebConfigurationManager.ConnectionStrings["tipoConexion"].ConnectionString;
        this.cadenaDeConexion = WebConfigurationManager.ConnectionStrings[tipoconexion].ConnectionString;

        switch (tipoconexion)
        {
            case "ConexionMySql":
                return new MySqlConnection(this.cadenaDeConexion);
            default:
                return null;
        }
    }

    #region Metodos que trabajan con las transacciones

    public MySqlTransaction PrepararTransaccion(MySqlConnection pConexion)
    {
        pConexion.Open();

        if (pConexion is MySqlConnection)
            return (MySqlTransaction)pConexion.BeginTransaction();
        else
            return null;
    }

    public void ConfirmarTransaccion(MySqlTransaction pTransaccion, MySqlConnection pConexion)
    {
        pTransaccion.Commit();
        pConexion.Close();
    }

    public void DeshacerTransaccion(MySqlTransaction pTransaccion, MySqlConnection pConexion)
    {
        if (pTransaccion != null)
            pTransaccion.Rollback();
        pConexion.Close();
    }

    #endregion
}